package com.itheima.day08;

import java.util.ArrayList;
import java.util.LinkedList;

/*
性能分析
 */
public class Test02 {

    public static void main(String[] args) {
        // LinkedList<Integer> list1 = new LinkedList<>();
       ArrayList<Integer> list1 = new ArrayList<>();
        for (int i = 0; i < 10000000; i++) {
            list1.add(0);
        }

        long start = System.currentTimeMillis();
        //增 删  改 查
        //addMethod(list1);
       // getMethod(list1);
        long end = System.currentTimeMillis();
        System.out.println(end-start);

    }

    public static void getMethod(ArrayList<Integer> list1) {
        //链表
       /* for (int i = 0; i < 100; i++) {
            //查头100w次  6毫秒
           // Integer first = list1.getFirst();

            //查尾100w次  10毫秒
           // Integer last = list1.getLast();
            //查中间 100 次 1870
            Integer j = list1.get(5000000);
        }*/
        //数组
        for (int i = 0; i < 10000000; i++) {
            //查头 100w 10ms
//            Integer integer = list1.get(0);
            //查尾 1000w  10ms
//            Integer integer = list1.get(9999999);
            //查中间    1000w 5ms
            Integer integer = list1.get(5000000);
        }
    }

    public static void addMethod(LinkedList<Integer> list1) {
        //数组
      /*  for (int i = 0; i < 100; i++) {
            //尾插1000000 条 17毫秒
            //list1.add(1);
            //头插法  100条 2410毫秒
            //list1.add(0,1);

            //中间插入 100条  1155
            list1.add(5000000,1);
        }*/
        //链表
        for (int i = 0; i < 1000000; i++) {
            //尾插1000000 条 310毫秒
            list1.addLast(1);
            //头插法  1000000条 275毫秒
         //list1.addFirst(1);

            //中间插入 100条  2702
           // list1.add(5000000,1);
        }
    }

    public static void main2(String[] args) {



    }
}
